/**
 * Copyright (C) 2010-2016 eBusiness Information, Excilys Group
 * Copyright (C) 2016-2020 the AndroidAnnotations project
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed To in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */

package org.ohosannotations.test.efragment;

import ohos.aafwk.ability.fraction.Fraction;
import ohos.agp.components.Text;
import ohos.app.IAbilityManager;
import ohos.data.rdb.RdbStore;

import org.ohosannotations.annotations.AfterInject;
import org.ohosannotations.annotations.AfterViews;
import org.ohosannotations.annotations.Bean;
import org.ohosannotations.annotations.Click;
import org.ohosannotations.annotations.ComponentById;
import org.ohosannotations.annotations.EFraction;
import org.ohosannotations.annotations.SystemService;
import org.ohosannotations.annotations.Trace;
import org.ohosannotations.annotations.Transactional;
import org.ohosannotations.annotations.UiThread;
import org.ohosannotations.test.ResourceTable;
import org.ohosannotations.test.ebean.SomeBean;

/**
 * 我的支持部分
 *
 * @author dev
 * @since 2021-07-22
 */
@EFraction(ResourceTable.Layout_injected)
public class MySupportFraction extends Fraction {
    @Bean
    SomeBean someBean;

    @ComponentById
    Text myTextView;

    @SystemService
    IAbilityManager abilityManager;

    @Click
    void myButton() {
    }

    @UiThread
    void uiThread() {
    }

    @Trace
    void trace() {
    }

    @Transactional
    void successfulTransaction(RdbStore db) {
    }

    @AfterInject
    void calledAfterInjection() {
    }

    @AfterViews
    void calledAfterViewInjection() {
    }

    @ComponentById(ResourceTable.Id_my_text_view)
    void methodView1(Text methodView1) {
    }

    void methodView2(@ComponentById(ResourceTable.Id_my_text_view) Text methodView2) {
    }
}
